1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10 using System.Globalization;
11
12 namespace SoftQuanLyNhaHang.Views
13 {
14 public delegate void LinkThemMoiBom_EventHandler(object sender, EventArgs e, int IdBom);
15
16 public delegate void LinkXemChiTiet_Bom_EventHandler(object sender, EventArgs e, int IdBom);
17
18
19 public partial class uctBom_GoiSanPham : UserControl
20 {
21 public event LinkThemMoiBom_EventHandler Link_ThemMoiBom;
22
23 public event LinkXemChiTiet_Bom_EventHandler Link_XemChiTiet_Bom;
24
25
26 public uctBom_GoiSanPham()
27 {
28 InitializeComponent();
29 }
30
31 int IdBom = 0;
32
33 public static uctBom_GoiSanPham uctBomGsp = new uctBom_GoiSanPham();
34
35 int _pageSize = 30;
36 int _pageIndex = 1;
37 int _tongSoBanGhi = 0;
38 int _stt = 0;
39
40 int _IdBom = 0;
41 //string _TieuDe = string.Empty;
42 float _SoLuong = 0;
43 ///DateTime _NgayBatDau = DateTime.Now;
44 //
45 double _GiaVon = 0;
46 double _GiaBan = 0;
47 //string _TrangThai = "SuDung";
48 string _MoTa = string.Empty;
49
50 DateTime _NgayKetThuc = DateTime.Now;
51 DateTime _NgayHomNay = DateTime.Now;
52
53 DateTime TuNgay = DateTime.Parse("2000-01-01");
54 DateTime DenNgay = DateTime.Parse("2000-01-01");
55 string _getTrangThai = "-1";
56
57 /*
58 private void HienThiTrangThai_ComboBox()
59 {
60 Dictionary<string, string> comboSource = new Dictionary<string, string>();
61 comboSource.Add("-1", "-- Tất cả --");
62 comboSource.Add("Dong", "Đóng");
63
64 cmbTrangThai.DataSource = new BindingSource(comboSource, null);
65 cmbTrangThai.DisplayMember = "Value";
66 cmbTrangThai.ValueMember = "Key";
67 }
68 */
69
70 private void linkAddBom_OrGoiSp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
71 {
72 if (this.Link_ThemMoiBom != null)
73 {
74 this.Link_ThemMoiBom(sender, e, IdBom);
75 }
76 }
77
78 private void uctBom_GoiSanPham_Load(object sender, EventArgs e)
79 {
80 //this.HienThiTrangThai_ComboBox();
81 //cmbTrangThai.SelectedValue = "-1";//tất cả
82
83 this.HienThiDanhSachBom_Search(txtTieuDe.Text.Trim(), TuNgay, DenNgay, _getTrangThai);
84 }
85
86 private void HienThiDanhSachBom_Search(string getTieuDe, DateTime _TuNgay, DateTime _DenNgay, string getTrangThai)
87 {
88 dgvDsBom.Rows.Clear();
89 //Ẩn cột đầu tiên
90 dgvDsBom.RowHeadersVisible = false;
91 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
92 this.dgvDsBom.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
93 this.dgvDsBom.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
94 //this.dgvDanhSachNhapHang.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
95
96 this.dgvDsBom.Columns["SoLuong"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
97 this.dgvDsBom.Columns["SoLuong"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
98
99 this.dgvDsBom.Columns["GiaVon"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
100 this.dgvDsBom.Columns["GiaVon"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
101
102 this.dgvDsBom.Columns["GiaBan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
103 this.dgvDsBom.Columns["GiaBan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
104
105 this.dgvDsBom.Columns["ThanhTien"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
106 this.dgvDsBom.Columns["ThanhTien"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
107
108
109 this.dgvDsBom.Columns["NgayBatDau"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
110 this.dgvDsBom.Columns["NgayBatDau"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
111
112 this.dgvDsBom.Columns["NgayKetThuc"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
113 this.dgvDsBom.Columns["NgayKetThuc"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
114
115 this.dgvDsBom.Columns["NgayTao"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
116 this.dgvDsBom.Columns["NgayTao"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
117
118 this.dgvDsBom.Columns["XemChiTiet"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
119 this.dgvDsBom.Columns["XemChiTiet"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
120
121 this.dgvDsBom.Columns["SoLuongMatHangKhuyenMai"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
122 this.dgvDsBom.Columns["SoLuongMatHangKhuyenMai"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
123
124
125 this.dgvDsBom.Columns["SoLuongMatHangMua"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
126 this.dgvDsBom.Columns["SoLuongMatHangMua"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
127
128
129 DataTable dtBom = new DataTable();
130
131 //select từ bảng bán hàng
132 dtBom = Controllers.BomCtrl.FillDataSet_getBom_Search(_IdBom, getTieuDe, _SoLuong, _TuNgay, _DenNgay, _GiaVon, _GiaBan, getTrangThai, _MoTa, _pageSize, _pageIndex, DateTime.Now).Tables[0];
133
134 double tongGiaBan = 0;
135 double tongGiaVon = 0;
136 double soL = 0;
137 double ttien = 0;
138 if (dtBom.Rows.Count > 0)
139 {
140 _tongSoBanGhi = Int32.Parse(dtBom.Rows[0]["TongSoBanGhi"].ToString());
141
142 foreach (DataRow item in dtBom.Rows)
143 {
144 _stt += 1;
145 int n = dgvDsBom.Rows.Add();
146
147 dgvDsBom.Rows[n].Cells["IdBomList"].Value = item["IdBom"].ToString();
148 dgvDsBom.Rows[n].Cells["STT"].Value = _stt.ToString();
149
150 dgvDsBom.Rows[n].Cells["TieuDe"].Value = item["TieuDe"].ToString();
151
152 soL = CauHinhHeThong.Format_SoDeTinhToan(item["SoLuong"].ToString(),false);
153 dgvDsBom.Rows[n].Cells["SoLuong"].Value = CauHinhHeThong.Format_SoDeHienThi(soL, false);
154
155 dgvDsBom.Rows[n].Cells["NgayBatDau"].Value = CauHinhHeThong.Format_HienThiNgayThangNam(item["NgayBatDau"].ToString(),false);
156 dgvDsBom.Rows[n].Cells["NgayKetThuc"].Value = CauHinhHeThong.Format_HienThiNgayThangNam(item["NgayKetThuc"].ToString(),false);
157 dgvDsBom.Rows[n].Cells["NgayTao"].Value = CauHinhHeThong.Format_HienThiNgayThangNam(item["NgayTao"].ToString(), false);
158
159 tongGiaVon = CauHinhHeThong.Format_SoDeTinhToan(item["TongGiaVon"].ToString(),false);
160 dgvDsBom.Rows[n].Cells["GiaVon"].Value = CauHinhHeThong.Format_SoDeHienThi(tongGiaVon, true);
161
162 tongGiaBan = CauHinhHeThong.Format_SoDeTinhToan(item["TongGiaBan"].ToString(),false);
163 dgvDsBom.Rows[n].Cells["GiaBan"].Value = CauHinhHeThong.Format_SoDeHienThi(tongGiaBan, true) ;
164
165 dgvDsBom.Rows[n].Cells["SoLuongMatHangKhuyenMai"].Value = item["SoLuongMatHangKhuyenMai"].ToString();
166
167 dgvDsBom.Rows[n].Cells["SoLuongMatHangMua"].Value = item["SoLuongMatHangMua"].ToString();
168
169 ttien = soL * tongGiaBan;
170 dgvDsBom.Rows[n].Cells["ThanhTien"].Value = CauHinhHeThong.Format_SoDeHienThi(ttien, true);
171
172
173 dgvDsBom.Rows[n].Cells["XemChiTiet"].Value = "Chi tiết";
174 }
175
176
177 }
178 else
179 {
180
181 _tongSoBanGhi = 0;
182 }
183
184 lblTongSoBanGhiHienThi.Text = CauHinhHeThong.HienThiSoBanGhiTuA_DenB(_pageSize, _pageIndex, _stt.ToString(), _tongSoBanGhi.ToString());
185 }
186
187 private void dgvDsBom_CellClick(object sender, DataGridViewCellEventArgs e)
188 {
189
190 if (dgvDsBom.Columns[e.ColumnIndex].Name == "XemChiTiet" && e.RowIndex != -1)
191 {
192 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
193 if (dgvDsBom.CurrentCell != null && dgvDsBom.CurrentCell.Value != null)
194 {
195 if (this.Link_XemChiTiet_Bom != null)
196 {
197 IdBom = Int32.Parse(dgvDsBom.Rows[e.RowIndex].Cells["IdBomList"].Value.ToString());
198 this.Link_XemChiTiet_Bom(sender, e, IdBom);
199 }
200 }
201
202 }
203
204 }
205
206 private void txtTieuDe_TextChanged(object sender, EventArgs e)
207 {
208 _stt = 0;
209 _pageIndex = 1;
210 _pageSize = 30;
211 this.HienThiDanhSachBom_Search(txtTieuDe.Text.Trim(), TuNgay, DenNgay, _getTrangThai);
212 }
213
214 private void cmbTrangThai_SelectionChangeCommitted(object sender, EventArgs e)
215 {
216
217 //this.linkLabelHienThiTatCa_LinkClicked(sender, e);
218 }
219
220
221 /*
222 private void dateNgayBatDau_ValueChanged(object sender, EventArgs e)
223 {
224 this.HienThiDsAllSearch(1);
225 }
226
227 private void dateNgayKetThuc_ValueChanged(object sender, EventArgs e)
228 {
229 //this.HienThiDsAllSearch();
230 }
231
232
233 */
234 private void linkLabelHienThiTatCa_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
235 {
236 _stt = 0;
237 _pageSize = 30;
238 _pageIndex = 1;
239
240 //string _getTieuDe = txtTieuDe.Text.Trim();
241
242
243 string format = "dd/MM/yyyy";
244 DateTime dateTime;
245
246
247 if (DateTime.TryParseExact(maskedTextBoxTuNgay.Text, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
248 {
249 TuNgay = DateTime.ParseExact(maskedTextBoxTuNgay.Text, "dd/MM/yyyy", null);
250 }
251 else
252 {
253 TuNgay = DateTime.Parse("2000-01-01");
254 }
255
256 if (DateTime.TryParseExact(maskedTextBoxDenNgay.Text, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
257 {
258 DenNgay = DateTime.ParseExact(maskedTextBoxDenNgay.Text, "dd/MM/yyyy", null);
259 }
260 else
261 {
262 DenNgay = DateTime.Parse("2000-01-01");
263 }
264
265
266 this.HienThiDanhSachBom_Search(txtTieuDe.Text.Trim(), TuNgay, DenNgay, _getTrangThai);
267 }
268
269 private void btnTiep_Click(object sender, EventArgs e)
270 {
271 if (_tongSoBanGhi > (_pageSize * _pageIndex))
272 {
273 _pageIndex = _pageIndex + 1;
274
275 //goi lai ds
276
277 this.HienThiDanhSachBom_Search(txtTieuDe.Text.Trim(), TuNgay, DenNgay, _getTrangThai);
278 }
279 else
280 {
281 return;
282 }
283 }
284
285 private void btnSau_Click(object sender, EventArgs e)
286 {
287 if ((_pageSize * _pageIndex) > _pageSize)
288 {
289 _pageIndex = _pageIndex - 1;
290 _stt = _pageSize * _pageIndex - _pageSize;
291
292 //
293 this.HienThiDanhSachBom_Search(txtTieuDe.Text.Trim(), TuNgay, DenNgay, _getTrangThai);
294 }
295 else
296 {
297 _pageIndex = 1;
298 }
299 }
300 }
301 }